module.exports = function(left, operator, right, options) {
     if (arguments.length < 3) {
       throw new Error('Handlerbars Helper "compare" needs 2 parameters');
     }
     var operators = {
       '==':     function(l, r) {return l == r; },
       '===':    function(l, r) {return l === r; },
       '!=':     function(l, r) {return l != r; },
       '!==':    function(l, r) {return l !== r; },
       '<':      function(l, r) {return l < r; },
       '>':      function(l, r) {return l > r; },
       '<=':     function(l, r) {return l <= r; },
       '>=':     function(l, r) {return l >= r; },
       'typeof': function(l, r) {return typeof l == r; },
       '&&':     function(l,r) {return l && r;}
     };

     if (!operators[operator]) {
       throw new Error('Handlerbars Helper "compare" doesn\'t know the operator ' + operator);
     }

     var result = operators[operator](left, right);

     if (result) {
       return options.fn(this);
     } else {
       return options.inverse(this);
     }
}